home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Purity / Purity #23 (1994-02-10)(Diesel)(DE)[WB].zip / Purity #23 (1994-02-10)(Diesel)(DE)[WB].adf / Tools / ToolsUnit.p < prev    next >
Text File  |  1994-01-20  |  5KB  |  240 lines

  1. UNIT Tools;
  2.  
  3. { +--------------------------------------------------------------------+
  4.   |                                Unit Tools                          |
  5.   |                                                                    |
  6.   |                               Version 1.30                         |
  7.   |                                                                    |
  8.   |              © Copyright 1993 by Björn Schotte (BOMBERSOFT)        |
  9.   |                                                                    |
  10.   |                           G  I  F  T  W  A  R  E                   |
  11.   |                                                                    |
  12.   |                                                                    |
  13.   | Grüße und Dank gehen an:                                           |
  14.   |                                                                    |
  15.   | Diesel für die Purities und an Michael Klein für seine tollen      |
  16.   | Prozeduren und für Røgerdat, Drucky, PPPClone, ...                 |
  17.   +--------------------------------------------------------------------+ }
  18.  
  19.  
  20. INTERFACE
  21.  
  22.   FROM MyTools USES ToolGad;
  23.   FROM MyTools USES ToolTime;
  24.   FROM MyTools USES ToolPAR;
  25.   FROM MyTools USES ArpSupport;
  26.  
  27.   USES Graphics, Exec;
  28.  
  29.   {$incl "intuition/intuitionbase.h"}
  30.  
  31.   FUNCTION  FindWBScreen : p_Screen;
  32.   FUNCTION  Exist(datei : String) : BOOLEAN;
  33.   PROCEDURE Maus(MouseOnOff : BOOLEAN);
  34.   PROCEDURE ToggleBool(VAR Boolsche : BOOLEAN);
  35.   PROCEDURE Upper(VAR MakeUpper : STRING);
  36.   FUNCTION  GetLongInt(gad:p_Gadget) : LONG;
  37.   PROCEDURE SetLongInt(VAR gad:Gadget; Val:LONG);
  38.   FUNCTION  GetString(gad:p_Gadget) : STRING;
  39.   PROCEDURE SetString(VAR gad:Gadget; Stri:STRING);
  40.   FUNCTION  MenuNum(code:LONGINT):CARDINAL;
  41.   FUNCTION  ItemNum(code:LONGINT):CARDINAL;
  42.   FUNCTION  SubNum(code:LONGINT):CARDINAL;
  43.   FUNCTION  Zins(K,P:REAL; T:INTEGER):REAL;
  44.   FUNCTION  Kapital(Z,P:REAL; T:INTEGER):REAL;
  45.   FUNCTION  Zinssatz(Z,K:REAL; T:INTEGER):REAL;
  46.   FUNCTION  Tage(Z,K,P:REAL):INTEGER;
  47.   FUNCTION  ggT(a,b:LONG):LONG;
  48.   FUNCTION  kgV(a,b:LONG):LONG;
  49.   FUNCTION  Potenz(argument,hoch:REAL):REAL;
  50.  
  51. IMPLEMENTATION
  52.  
  53.   {$incl "libraries/dos.h","dos.lib"}
  54.  
  55.   VAR
  56.     MausSave             : BYTE;
  57.  
  58.   FUNCTION FindWBScreen;
  59.   VAR
  60.     IBase : p_IntuitionBase;
  61.     scr   : p_Screen;
  62.     p     : LONG;
  63.   BEGIN
  64.     IBase := IntuitionBase;
  65.     p := LockIBase(0);
  66.     scr := IBase^.FirstScreen;
  67.     While (scr^.Title <> "Workbench Screen") Do scr := scr^.NextScreen;
  68.     UnLockIBase(p);
  69.     FindWBScreen := scr;
  70.   END;
  71.  
  72.   FUNCTION Exist;
  73.   VAR
  74.     ml : BPTR;
  75.   BEGIN
  76.     Exist := False;
  77.     ml := Lock(datei,SHARED_LOCK);
  78.     IF ml<>0 THEN
  79.     BEGIN
  80.       UnLock(ml);
  81.       Exist := True;
  82.     END;
  83.   END;
  84.  
  85.   PROCEDURE Maus;
  86.   BEGIN
  87.     IF MouseOnOff=TRUE THEN
  88.       MEM[$dff096] := MausSave
  89.     ELSE
  90.       MEM[$dff096] := 32;
  91.   END;
  92.  
  93.   PROCEDURE ToggleBool;
  94.   BEGIN
  95.     IF Boolsche THEN
  96.       Boolsche := FALSE
  97.     ELSE
  98.       Boolsche := TRUE;
  99.   END;
  100.  
  101.   PROCEDURE Upper;
  102.   VAR
  103.     i : INTEGER;
  104.   BEGIN
  105.     FOR i := 1 TO Length(MakeUpper) DO
  106.       MakeUpper[i] := UpCase(MakeUpper[i]);
  107.   END;
  108.  
  109.   FUNCTION GetLongInt;
  110.   VAR
  111.     SpInf:p_StringInfo;
  112.   BEGIN
  113.     IF (gad^.GadgetType AND STRGADGET)<>0 THEN
  114.     BEGIN
  115.       SpInf:=gad^.SpecialInfo;
  116.       GetLongInt:=SpInf^.LongInt;
  117.     END ELSE GetLongInt:=0;
  118.   END;
  119.  
  120.   PROCEDURE SetLongInt;
  121.   VAR
  122.     SpInf : p_StringInfo;
  123.     x : STRING;
  124.   BEGIN
  125.     IF (gad.GadgetType AND STRGADGET)<>0 THEN
  126.     BEGIN
  127.       SpInf:=p_StringInfo(gad.SpecialInfo);
  128.       x:=IntStr(Val);
  129.       SpInf^.Buffer:=^x;
  130.       SpInf^.LongInt:=Val;
  131.     END;
  132.   END;
  133.  
  134.   FUNCTION GetString;
  135.   VAR
  136.     SpInf : p_StringInfo;
  137.     Stri  : STRING;
  138.   BEGIN
  139.     GetString := "";
  140.     IF (gad^.SpecialInfo <> NIL) AND ((gad^.GadgetType AND STRGADGET)<>0) THEN
  141.     BEGIN
  142.       SpInf := p_StringInfo(gad^.SpecialInfo);
  143.       Stri := SpInf^.Buffer;
  144.       GetString := Stri;
  145.     END;
  146.   END;
  147.  
  148.   PROCEDURE SetString;
  149.   VAR
  150.     SpInf : p_StringInfo;
  151.   BEGIN
  152.     IF (gad.GadgetType AND STRGADGET)<>0 THEN
  153.     BEGIN
  154.       SpInf := p_StringInfo(gad.SpecialInfo);
  155.       SpInf^.Buffer := ^Stri;
  156.     END;
  157.   END;
  158.  
  159.   FUNCTION MenuNum;
  160.   BEGIN
  161.     MenuNum := code AND %11111;
  162.   END;
  163.  
  164.   FUNCTION ItemNum;
  165.   VAR
  166.     dummy : CARDINAL;
  167.   BEGIN
  168.     dummy := code AND %11111100000;
  169.     ItemNum := dummy SHR 5;
  170.   END;
  171.  
  172.   FUNCTION SubNum;
  173.   VAR
  174.     dummy : CARDINAL;
  175.   BEGIN
  176.     dummy := code AND %1111100000000000;
  177.     SubNum := dummy SHR 11;
  178.   END;
  179.  
  180.   FUNCTION Zins;
  181.   BEGIN
  182.     Zins := (k*p*t) / 36000;
  183.   END;
  184.  
  185.   FUNCTION Kapital;
  186.   BEGIN
  187.     Kapital := (z*36000) / (t*p);
  188.   END;
  189.  
  190.   FUNCTION Zinssatz;
  191.   BEGIN
  192.     Zinssatz := (z*36000) / (k*t);
  193.   END;
  194.  
  195.   FUNCTION Tage;
  196.   BEGIN
  197.     Tage := Round((z*36000)/(k*p));
  198.   END;
  199.  
  200.   FUNCTION ggT;
  201.   VAR
  202.     hilf : INTEGER;
  203.   BEGIN
  204.     WHILE a<>0 DO
  205.     BEGIN
  206.       hilf := ABS(a);
  207.       a:=b MOD a;
  208.       b:=hilf;
  209.     END;
  210.     ggT:=b;
  211.   END;
  212.  
  213.   FUNCTION kgV;
  214.   BEGIN
  215.     kgV:=(a*b) DIV ggT(a,b);
  216.   END;
  217.  
  218.   FUNCTION Potenz;
  219.   BEGIN
  220.     Potenz:=EXP(hoch*ln(Argument));
  221.   END;
  222.  
  223.   BEGIN
  224.     MausSave := MEM[$dff096];
  225.   END.
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.